﻿/**
 * 编辑器区域按Enter键时的处理方法
 */
(function(E, $){

var Consts = E.consts,
	Event = E.mod('Event'),
	emptyp = Consts.IE? '<p>&nbsp;</p>' : '<p><br></p>';

// 键盘按下事件

Event.bind('keydown', function(dom, e){
	var target = $( Event.getTarget() ) , keycode = e.keyCode;
	//对sup标签禁止任何手动修改,同时允许方向键控制光标位置
	if( target.is('sup.refer')){
		if(keycode == 8 || keycode == 46){
			//if( confirm('提示：确定要删除此参考资料标注吗？') ){
				target.remove();
			//}
			return false;
		}else if(keycode < 37 || keycode>40){
			// 将输入定位到参考资料标签的后面
			E.mod("Selection").cursorToNext(target[0]);
		}
	}else{
	// 2012-12-21 潘雪鹏
	// 处于断尾的参考资料，光标点击在参考资料最后时，获取到的元素是sup的父标签
	// 在keyup当中处理
	}
});

// 键盘抬起事件，处理回车键
Event.bind('keyup', function(dom, e){
	var target = $( Event.getTarget() );
	if( !Consts.IE ){
		// 2012-12-21 潘雪鹏
		// 解决：处于断尾的参考资料，光标点击在参考资料最后时，获取到的元素是sup的父标签
		// 在段落最后一个sup标签的最后位置输入时，会进入下面的代码
		var lastTag = target.children().last();
		if( !target.is('sup.refer') && lastTag.is('sup.refer') ){
			var matchs = lastTag.text().match(/(\[\d+\])(.+)/);
			if( matchs && matchs.length === 3){
				lastTag.text(matchs[1]).after('<span> '+matchs[2]+'</span>');
				E.mod("Selection").cursorToNext(lastTag.next()[0]);
			}
		}else{
			E.log('enterkey keyup lastTag:', lastTag[0]);
		}
	}
});

})(jQEditor, jQuery);